#-----------------------#
# coding='utf-8'
# !Python3.7
# Author: Terry
# 使用urllib工具爬虫豆瓣网热门电影排行10个
#-----------------------#


#region--分析网页

#排行榜的电影信息不在网页源信息中，而是通过ajax加载进来，所以要查看ajax请求地址
saw_url="https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0"
# 从上面的地址可以看出，网址后面跟了4个参数（类型，标签，每页展示数，页面起始条数）
# 中午部分经过了unicode转义，不过可以从网页的标签中看到
# 我们可以通过改变标签，每页限制条数来完全获取到每一个标签下的内容
# urlopen 是python自带的web库模块，urlopen函数用例发送请求， 但复杂的请求对象需要Request来构建
# 然后由urlopen 来执行
# 在Python3版本中urllib整合了urllib2，urllib3,所以只需引入urllib库即可

#endregion

#代码
from urllib.request import urlopen,Request
from urllib.parse import urlencode
import json

url_pre="https://movie.douban.com/j/search_subjects"
ua="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"
taglist=["热门","最新","豆瓣高分","冷门佳片","华语","欧美","韩国","日本"]
d={
    "type":"movie",
    "tag":"最新",
    "page_limit":10,
    "page_start":0
}


#拼凑请求信息
req=Request('{}?{}'.format(url_pre,urlencode(d)),headers={"User-agent":ua})

with urlopen(req) as res:
    #    print(res.read())
    subjects=json.loads(res.read())
    print(len(subjects["subjects"]))
    
    for i in range(len(subjects["subjects"])):
        print("outputing No.", i+1)
        print(subjects["subjects"][i])
        print("/n")



